for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
import { START_BIN, END_BIN, BINARIES } from './constants';
import Barcode from '../Barcode';
class ITF extends Barcode {
valid() {
return this.data.search(/^([0-9]{2})+$/) !== -1;
}
encode() {
// Calculate all the digit pairs
const encoded = this.data
.match(/.{2}/g)
.map(pair => this.encodePair(pair))
.join('');
return {
data: START_BIN + encoded + END_BIN,
text: this.text
};
// Calculate the data of a number pair
encodePair(pair) {
const second = BINARIES[pair[1]];
return BINARIES[pair[0]]
.split('')
.map((first, idx) => (
(first === '1' ? '111' : '1') +
(second[idx] === '1' ? '000' : '0')
))
export default ITF;